"""
正则表达式的分组规则：
    | 表示或者
    () 表示分组
    \num 表示引用num分组的内容， 例如: \1表示引用第一组的数据，\2表示引用第二组的数据
"""
import re
# 需求1：列表中有一些水果，喜欢吃：apple和pear， 用正则表达式提取出来
fruits = ["apple", "peach", "orange", "pear", "banana"]

# 遍历，获取列表中的每一个水果
for fruit in fruits:
    # 用正则表达式提取出来
    result = re.match(r"(apple|pear)", fruit)
    if result != None:
        print(f"喜欢吃：{result.group()}")
    else:
        print(f"不喜欢吃：{fruit}")

print("--------------------")

# 需求2：匹配出：163、126、qq的邮箱
email = "122121@qq.com"

# 定义邮箱的校验规则
# 规则：
# 1. 以数字字母下划线开头
# 2. 中间可以是数字字母下划线
# 3. 最后以@数字字母下划线结尾
# 4. 中间必须有一个点
# 5. 点的后面必须是数字字母下划线
# 6. 数字字母下划线的长度必须在2-10之间
# 7. 总长度必须在6-20之间
# 8. 域名只能是：163、126、qq
result = re.match('^[0-9a-zA-Z_]{2,16}@(163|126|qq)\.(com|cn)$', email)

if result != None:
    print("邮箱格式正确")
else:
    print("邮箱格式错误")
